distance_base_utilities.f90 Source File

This module defines an abstract class called distance_base used as a template to derive classes used in the calculation of distances between input patterns


This file depends on

sourcefile~~distance_base_utilities.f90~~EfferentGraph sourcefile~distance_base_utilities.f90 distance_base_utilities.f90 sourcefile~precision_utilities.f90 precision_utilities.f90 sourcefile~distance_base_utilities.f90->sourcefile~precision_utilities.f90

Files dependent on this one

sourcefile~~distance_base_utilities.f90~~AfferentGraph sourcefile~distance_base_utilities.f90 distance_base_utilities.f90 sourcefile~correlation_distance_utilities.f90 correlation_distance_utilities.f90 sourcefile~correlation_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~direction_cosine_distance_utilities.f90 direction_cosine_distance_utilities.f90 sourcefile~direction_cosine_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~euclidean_distance_utilities.f90 euclidean_distance_utilities.f90 sourcefile~euclidean_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~factory_distance_utilities.f90 factory_distance_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~correlation_distance_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~direction_cosine_distance_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~euclidean_distance_utilities.f90 sourcefile~manhattan_distance_utilities.f90 manhattan_distance_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~manhattan_distance_utilities.f90 sourcefile~max_distance_utilities.f90 max_distance_utilities.f90 sourcefile~factory_distance_utilities.f90->sourcefile~max_distance_utilities.f90 sourcefile~kohonen_layer_utilities.f90 kohonen_layer_utilities.f90 sourcefile~kohonen_layer_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~kohonen_layer_utilities.f90->sourcefile~factory_distance_utilities.f90 sourcefile~kohonen_prototype_utilities.f90 kohonen_prototype_utilities.f90 sourcefile~kohonen_layer_utilities.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~kohonen_pattern_utilities.f90 kohonen_pattern_utilities.f90 sourcefile~kohonen_layer_utilities.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~kohonen_map_base_utilities.f90 kohonen_map_base_utilities.f90 sourcefile~kohonen_layer_utilities.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~kohonen_prototype_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~manhattan_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~max_distance_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90 multilayer_self_organizing_map_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90->sourcefile~factory_distance_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~multilayer_self_organizing_map_utilities.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~self_organizing_map_utilities.f90 self_organizing_map_utilities.f90 sourcefile~self_organizing_map_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~self_organizing_map_utilities.f90->sourcefile~factory_distance_utilities.f90 sourcefile~self_organizing_map_utilities.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~self_organizing_map_utilities.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~self_organizing_map_utilities.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90 two_level_self_organizing_map_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90->sourcefile~distance_base_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90->sourcefile~factory_distance_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~two_level_self_organizing_map_utilities.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~kohonen_pattern_utilities.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~som_predict_variables.f90 som_predict_variables.f90 sourcefile~som_predict_variables.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~som_predict_variables.f90->sourcefile~self_organizing_map_utilities.f90 sourcefile~som_predict_variables.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~som_predict_variables.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~som_train_variables.f90 som_train_variables.f90 sourcefile~som_train_variables.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~som_train_variables.f90->sourcefile~self_organizing_map_utilities.f90 sourcefile~som_train_variables.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~som_train_variables.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~two_level_som_estimate_variables.f90 two_level_som_estimate_variables.f90 sourcefile~two_level_som_estimate_variables.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~two_level_som_estimate_variables.f90->sourcefile~two_level_self_organizing_map_utilities.f90 sourcefile~two_level_som_estimate_variables.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~two_level_som_estimate_variables.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~two_level_som_train_variables.f90 two_level_som_train_variables.f90 sourcefile~two_level_som_train_variables.f90->sourcefile~kohonen_prototype_utilities.f90 sourcefile~two_level_som_train_variables.f90->sourcefile~two_level_self_organizing_map_utilities.f90 sourcefile~two_level_som_train_variables.f90->sourcefile~kohonen_pattern_utilities.f90 sourcefile~two_level_som_train_variables.f90->sourcefile~kohonen_map_base_utilities.f90 sourcefile~kohonen_map_base_utilities.f90->sourcefile~kohonen_pattern_utilities.f90

Source Code

!! author: Oscar Garcia-Cabrejo
!! date: 12/04/2024
!! version: 0.1
!! This module defines an abstract class called `distance_base` used as a template to 
!! derive classes used in the calculation of distances between input patterns
module distance_base_utilities
!
use precision_utilities, only: wp;
!!   This module defines an abstract class to represent an abstract function to calculate distance
implicit none
!
type,abstract :: distance_base
!! Abstract class `distance_base`
    contains
        procedure(distance_function1),deferred :: calculate
end type distance_base
!*****
abstract interface
!========================================================================================
    function distance_function1(distance,vector1,vector2) result(d)
!========================================================================================
!! Template for the calculate function
        import :: distance_base
        import :: wp
!! Import section
        class(distance_base) :: distance
!! A `distance_base` object
        real(kind=wp),dimension(:,:),intent(inout) :: vector1
!! A real vector
        real(kind=wp),dimension(:,:),intent(inout) :: vector2
!! A real vector
        real(kind=wp) :: d
!! A real variable with the distance
  end function distance_function1
!
end interface

end module distance_base_utilities